#ifndef CUFFTDX_FFT_21_FP32_INV_PTX_HPP
#define CUFFTDX_FFT_21_FP32_INV_PTX_HPP



template<> __forceinline__ __device__ void cufftdx_private_function<209, float, 1>(cufftdx::detail::complex<float> *rmem, unsigned smem){

asm volatile (R"({
.reg .f32 f<509>;
.reg .b64 rd<2>;
add.f32 f85, %50, %90;
add.f32 f86, %42, f85;
add.f32 f87, %58, %82;
add.f32 f88, f87, f86;
add.f32 f89, %66, %74;
add.f32 f90, f89, f88;
add.f32 f91, %51, %91;
add.f32 f92, %43, f91;
add.f32 f93, %59, %83;
add.f32 f94, f93, f92;
add.f32 f95, %67, %75;
add.f32 f96, f95, f94;
fma.rn.f32 f97, f85, 0f3F1F9D07, %42;
mul.f32 f98, f87, 0f3E63DC87;
sub.f32 f99, f97, f98;
mul.f32 f100, f89, 0f3F66A5E5;
sub.f32 f101, f99, f100;
sub.f32 f102, %51, %91;
mul.f32 f103, f102, 0f3F48261C;
sub.f32 f104, %59, %83;
fma.rn.f32 f105, f104, 0f3F7994E0, f103;
sub.f32 f106, %67, %75;
fma.rn.f32 f107, f106, 0f3EDE2602, f105;
sub.f32 f108, f101, f107;
add.f32 f109, f107, f101;
mul.f32 f110, f85, 0f3E63DC87;
sub.f32 f111, %42, f110;
mul.f32 f112, f87, 0f3F66A5E5;
sub.f32 f113, f111, f112;
fma.rn.f32 f114, f89, 0f3F1F9D07, f113;
mul.f32 f115, f102, 0f3F7994E0;
mul.f32 f116, f104, 0f3EDE2602;
sub.f32 f117, f115, f116;
mul.f32 f118, f106, 0f3F48261C;
sub.f32 f119, f117, f118;
sub.f32 f120, f114, f119;
add.f32 f121, f119, f114;
mul.f32 f122, f85, 0f3F66A5E5;
sub.f32 f123, %42, f122;
fma.rn.f32 f124, f87, 0f3F1F9D07, f123;
mul.f32 f125, f89, 0f3E63DC87;
sub.f32 f126, f124, f125;
mul.f32 f127, f102, 0f3EDE2602;
mul.f32 f128, f104, 0f3F48261C;
sub.f32 f129, f127, f128;
fma.rn.f32 f130, f106, 0f3F7994E0, f129;
sub.f32 f131, f126, f130;
add.f32 f132, f130, f126;
fma.rn.f32 f133, f91, 0f3F1F9D07, %43;
mul.f32 f134, f93, 0f3E63DC87;
sub.f32 f135, f133, f134;
mul.f32 f136, f95, 0f3F66A5E5;
sub.f32 f137, f135, f136;
sub.f32 f138, %50, %90;
mul.f32 f139, f138, 0f3F48261C;
sub.f32 f140, %58, %82;
fma.rn.f32 f141, f140, 0f3F7994E0, f139;
sub.f32 f142, %66, %74;
fma.rn.f32 f143, f142, 0f3EDE2602, f141;
add.f32 f144, f143, f137;
sub.f32 f145, f137, f143;
mul.f32 f146, f91, 0f3E63DC87;
sub.f32 f147, %43, f146;
mul.f32 f148, f93, 0f3F66A5E5;
sub.f32 f149, f147, f148;
fma.rn.f32 f150, f95, 0f3F1F9D07, f149;
mul.f32 f151, f138, 0f3F7994E0;
mul.f32 f152, f140, 0f3EDE2602;
sub.f32 f153, f151, f152;
mul.f32 f154, f142, 0f3F48261C;
sub.f32 f155, f153, f154;
add.f32 f156, f155, f150;
sub.f32 f157, f150, f155;
mul.f32 f158, f91, 0f3F66A5E5;
sub.f32 f159, %43, f158;
fma.rn.f32 f160, f93, 0f3F1F9D07, f159;
mul.f32 f161, f95, 0f3E63DC87;
sub.f32 f162, f160, f161;
mul.f32 f163, f138, 0f3EDE2602;
mul.f32 f164, f140, 0f3F48261C;
sub.f32 f165, f163, f164;
fma.rn.f32 f166, f142, 0f3F7994E0, f165;
add.f32 f167, f166, f162;
sub.f32 f168, f162, f166;
add.f32 f169, %52, %92;
add.f32 f170, %44, f169;
add.f32 f171, %60, %84;
add.f32 f172, f171, f170;
add.f32 f173, %68, %76;
add.f32 f174, f173, f172;
add.f32 f175, %54, %94;
add.f32 f176, %46, f175;
add.f32 f177, %62, %86;
add.f32 f178, f177, f176;
add.f32 f179, %70, %78;
add.f32 f180, f179, f178;
fma.rn.f32 f181, f169, 0f3F1F9D07, %44;
mul.f32 f182, f171, 0f3E63DC87;
sub.f32 f183, f181, f182;
mul.f32 f184, f173, 0f3F66A5E5;
sub.f32 f185, f183, f184;
sub.f32 f186, %54, %94;
mul.f32 f187, f186, 0f3F48261C;
sub.f32 f188, %62, %86;
fma.rn.f32 f189, f188, 0f3F7994E0, f187;
sub.f32 f190, %70, %78;
fma.rn.f32 f191, f190, 0f3EDE2602, f189;
sub.f32 f192, f185, f191;
add.f32 f193, f191, f185;
mul.f32 f194, f169, 0f3E63DC87;
sub.f32 f195, %44, f194;
mul.f32 f196, f171, 0f3F66A5E5;
sub.f32 f197, f195, f196;
fma.rn.f32 f198, f173, 0f3F1F9D07, f197;
mul.f32 f199, f186, 0f3F7994E0;
mul.f32 f200, f188, 0f3EDE2602;
sub.f32 f201, f199, f200;
mul.f32 f202, f190, 0f3F48261C;
sub.f32 f203, f201, f202;
sub.f32 f204, f198, f203;
add.f32 f205, f203, f198;
mul.f32 f206, f169, 0f3F66A5E5;
sub.f32 f207, %44, f206;
fma.rn.f32 f208, f171, 0f3F1F9D07, f207;
mul.f32 f209, f173, 0f3E63DC87;
sub.f32 f210, f208, f209;
mul.f32 f211, f186, 0f3EDE2602;
mul.f32 f212, f188, 0f3F48261C;
sub.f32 f213, f211, f212;
fma.rn.f32 f214, f190, 0f3F7994E0, f213;
sub.f32 f215, f210, f214;
add.f32 f216, f214, f210;
fma.rn.f32 f217, f175, 0f3F1F9D07, %46;
mul.f32 f218, f177, 0f3E63DC87;
sub.f32 f219, f217, f218;
mul.f32 f220, f179, 0f3F66A5E5;
sub.f32 f221, f219, f220;
sub.f32 f222, %52, %92;
mul.f32 f223, f222, 0f3F48261C;
sub.f32 f224, %60, %84;
fma.rn.f32 f225, f224, 0f3F7994E0, f223;
sub.f32 f226, %68, %76;
fma.rn.f32 f227, f226, 0f3EDE2602, f225;
add.f32 f228, f227, f221;
sub.f32 f229, f221, f227;
mul.f32 f230, f175, 0f3E63DC87;
sub.f32 f231, %46, f230;
mul.f32 f232, f177, 0f3F66A5E5;
sub.f32 f233, f231, f232;
fma.rn.f32 f234, f179, 0f3F1F9D07, f233;
mul.f32 f235, f222, 0f3F7994E0;
mul.f32 f236, f224, 0f3EDE2602;
sub.f32 f237, f235, f236;
mul.f32 f238, f226, 0f3F48261C;
sub.f32 f239, f237, f238;
add.f32 f240, f239, f234;
sub.f32 f241, f234, f239;
mul.f32 f242, f175, 0f3F66A5E5;
sub.f32 f243, %46, f242;
fma.rn.f32 f244, f177, 0f3F1F9D07, f243;
mul.f32 f245, f179, 0f3E63DC87;
sub.f32 f246, f244, f245;
mul.f32 f247, f222, 0f3EDE2602;
mul.f32 f248, f224, 0f3F48261C;
sub.f32 f249, f247, f248;
fma.rn.f32 f250, f226, 0f3F7994E0, f249;
add.f32 f251, f250, f246;
sub.f32 f252, f246, f250;
add.f32 f253, %55, %95;
add.f32 f254, %47, f253;
add.f32 f255, %63, %87;
add.f32 f256, f255, f254;
add.f32 f257, %71, %79;
add.f32 f258, f257, f256;
add.f32 f259, %57, %96;
add.f32 f260, %49, f259;
add.f32 f261, %65, %89;
add.f32 f262, f261, f260;
add.f32 f263, %73, %81;
add.f32 f264, f263, f262;
fma.rn.f32 f265, f253, 0f3F1F9D07, %47;
mul.f32 f266, f255, 0f3E63DC87;
sub.f32 f267, f265, f266;
mul.f32 f268, f257, 0f3F66A5E5;
sub.f32 f269, f267, f268;
sub.f32 f270, %57, %96;
mul.f32 f271, f270, 0f3F48261C;
sub.f32 f272, %65, %89;
fma.rn.f32 f273, f272, 0f3F7994E0, f271;
sub.f32 f274, %73, %81;
fma.rn.f32 f275, f274, 0f3EDE2602, f273;
sub.f32 f276, f269, f275;
add.f32 f277, f275, f269;
mul.f32 f278, f253, 0f3E63DC87;
sub.f32 f279, %47, f278;
mul.f32 f280, f255, 0f3F66A5E5;
sub.f32 f281, f279, f280;
fma.rn.f32 f282, f257, 0f3F1F9D07, f281;
mul.f32 f283, f270, 0f3F7994E0;
mul.f32 f284, f272, 0f3EDE2602;
sub.f32 f285, f283, f284;
mul.f32 f286, f274, 0f3F48261C;
sub.f32 f287, f285, f286;
sub.f32 f288, f282, f287;
add.f32 f289, f287, f282;
mul.f32 f290, f253, 0f3F66A5E5;
sub.f32 f291, %47, f290;
fma.rn.f32 f292, f255, 0f3F1F9D07, f291;
mul.f32 f293, f257, 0f3E63DC87;
sub.f32 f294, f292, f293;
mul.f32 f295, f270, 0f3EDE2602;
mul.f32 f296, f272, 0f3F48261C;
sub.f32 f297, f295, f296;
fma.rn.f32 f298, f274, 0f3F7994E0, f297;
sub.f32 f299, f294, f298;
add.f32 f300, f298, f294;
fma.rn.f32 f301, f259, 0f3F1F9D07, %49;
mul.f32 f302, f261, 0f3E63DC87;
sub.f32 f303, f301, f302;
mul.f32 f304, f263, 0f3F66A5E5;
sub.f32 f305, f303, f304;
sub.f32 f306, %55, %95;
mul.f32 f307, f306, 0f3F48261C;
sub.f32 f308, %63, %87;
fma.rn.f32 f309, f308, 0f3F7994E0, f307;
sub.f32 f310, %71, %79;
fma.rn.f32 f311, f310, 0f3EDE2602, f309;
add.f32 f312, f311, f305;
sub.f32 f313, f305, f311;
mul.f32 f314, f259, 0f3E63DC87;
sub.f32 f315, %49, f314;
mul.f32 f316, f261, 0f3F66A5E5;
sub.f32 f317, f315, f316;
fma.rn.f32 f318, f263, 0f3F1F9D07, f317;
mul.f32 f319, f306, 0f3F7994E0;
mul.f32 f320, f308, 0f3EDE2602;
sub.f32 f321, f319, f320;
mul.f32 f322, f310, 0f3F48261C;
sub.f32 f323, f321, f322;
add.f32 f324, f323, f318;
sub.f32 f325, f318, f323;
mul.f32 f326, f259, 0f3F66A5E5;
sub.f32 f327, %49, f326;
fma.rn.f32 f328, f261, 0f3F1F9D07, f327;
mul.f32 f329, f263, 0f3E63DC87;
sub.f32 f330, f328, f329;
mul.f32 f331, f306, 0f3EDE2602;
mul.f32 f332, f308, 0f3F48261C;
sub.f32 f333, f331, f332;
fma.rn.f32 f334, f310, 0f3F7994E0, f333;
add.f32 f335, f334, f330;
sub.f32 f336, f330, f334;
mul.f32 f337, f192, 0f3F74A06B;
mul.f32 f338, f228, 0f3E96EA26;
sub.f32 f339, f337, f338;
mul.f32 f340, f228, 0f3F74A06B;
fma.rn.f32 f341, f192, 0f3E96EA26, f340;
mul.f32 f342, f276, 0f3F538462;
mul.f32 f343, f312, 0f3F1035BE;
sub.f32 f344, f342, f343;
mul.f32 f345, f312, 0f3F538462;
fma.rn.f32 f346, f276, 0f3F1035BE, f345;
mul.f32 f347, f204, 0f3F538462;
mul.f32 f348, f240, 0f3F1035BE;
sub.f32 f349, f347, f348;
mul.f32 f350, f240, 0f3F538462;
fma.rn.f32 f351, f204, 0f3F1035BE, f350;
mul.f32 f352, f288, 0f3EBB0DFB;
mul.f32 f353, f324, 0f3F6E4DBE;
sub.f32 f354, f352, f353;
mul.f32 f355, f324, 0f3EBB0DFB;
fma.rn.f32 f356, f288, 0f3F6E4DBE, f355;
mul.f32 f357, f215, 0f3F1F9D07;
mul.f32 f358, f251, 0f3F48261C;
sub.f32 f359, f357, f358;
mul.f32 f360, f251, 0f3F1F9D07;
fma.rn.f32 f361, f215, 0f3F48261C, f360;
mul.f32 f362, f299, 0fBE63DC87;
mul.f32 f363, f335, 0f3F7994E0;
sub.f32 f364, f362, f363;
mul.f32 f365, f335, 0fBE63DC87;
fma.rn.f32 f366, f299, 0f3F7994E0, f365;
mul.f32 f367, f216, 0f3EBB0DFB;
mul.f32 f368, f252, 0f3F6E4DBE;
sub.f32 f369, f367, f368;
mul.f32 f370, f252, 0f3EBB0DFB;
fma.rn.f32 f371, f216, 0f3F6E4DBE, f370;
mul.f32 f372, f300, 0fBF3BA94A;
mul.f32 f373, f336, 0f3F2E1FCD;
sub.f32 f374, f372, f373;
mul.f32 f375, f336, 0fBF3BA94A;
fma.rn.f32 f376, f300, 0f3F2E1FCD, f375;
mul.f32 f377, f205, 0f3D990C17;
mul.f32 f378, f241, 0f3F7F48C0;
sub.f32 f379, f377, f378;
mul.f32 f380, f241, 0f3D990C17;
fma.rn.f32 f381, f205, 0f3F7F48C0, f380;
mul.f32 f382, f289, 0fBF7D2404;
mul.f32 f383, f325, 0f3E189E89;
sub.f32 f384, f382, f383;
mul.f32 f385, f325, 0fBF7D2404;
fma.rn.f32 f386, f289, 0f3E189E89, f385;
mul.f32 f387, f193, 0fBE63DC87;
mul.f32 f388, f229, 0f3F7994E0;
sub.f32 f389, f387, f388;
mul.f32 f390, f229, 0fBE63DC87;
fma.rn.f32 f391, f193, 0f3F7994E0, f390;
mul.f32 f392, f277, 0fBF66A5E5;
mul.f32 f393, f313, 0fBEDE2602;
sub.f32 f394, f392, f393;
mul.f32 f395, f313, 0fBF66A5E5;
fma.rn.f32 f396, f277, 0fBEDE2602, f395;
add.f32 f397, f174, f258;
add.f32 f398, f180, f264;
mul.f32 f399, f397, 0f3F000000;
sub.f32 f400, f90, f399;
sub.f32 f401, f180, f264;
mul.f32 f402, f401, 0fBF5DB3D7;
mul.f32 f403, f398, 0f3F000000;
sub.f32 f404, f96, f403;
sub.f32 f405, f174, f258;
mul.f32 f406, f405, 0fBF5DB3D7;
add.f32 f407, f339, f344;
add.f32 f408, f341, f346;
mul.f32 f409, f407, 0f3F000000;
sub.f32 f410, f108, f409;
sub.f32 f411, f341, f346;
mul.f32 f412, f411, 0fBF5DB3D7;
mul.f32 f413, f408, 0f3F000000;
sub.f32 f414, f144, f413;
sub.f32 f415, f339, f344;
mul.f32 f416, f415, 0fBF5DB3D7;
add.f32 f417, f349, f354;
add.f32 f418, f351, f356;
mul.f32 f419, f417, 0f3F000000;
sub.f32 f420, f120, f419;
sub.f32 f421, f351, f356;
mul.f32 f422, f421, 0fBF5DB3D7;
mul.f32 f423, f418, 0f3F000000;
sub.f32 f424, f156, f423;
sub.f32 f425, f349, f354;
mul.f32 f426, f425, 0fBF5DB3D7;
add.f32 f427, f359, f364;
add.f32 f428, f361, f366;
mul.f32 f429, f427, 0f3F000000;
sub.f32 f430, f131, f429;
sub.f32 f431, f361, f366;
mul.f32 f432, f431, 0fBF5DB3D7;
mul.f32 f433, f428, 0f3F000000;
sub.f32 f434, f167, f433;
sub.f32 f435, f359, f364;
mul.f32 f436, f435, 0fBF5DB3D7;
add.f32 f437, f369, f374;
add.f32 f438, f371, f376;
mul.f32 f439, f437, 0f3F000000;
sub.f32 f440, f132, f439;
sub.f32 f441, f371, f376;
mul.f32 f442, f441, 0fBF5DB3D7;
mul.f32 f443, f438, 0f3F000000;
sub.f32 f444, f168, f443;
sub.f32 f445, f369, f374;
mul.f32 f446, f445, 0fBF5DB3D7;
add.f32 f447, f379, f384;
add.f32 f448, f381, f386;
mul.f32 f449, f447, 0f3F000000;
sub.f32 f450, f121, f449;
sub.f32 f451, f381, f386;
mul.f32 f452, f451, 0fBF5DB3D7;
mul.f32 f453, f448, 0f3F000000;
sub.f32 f454, f157, f453;
sub.f32 f455, f379, f384;
mul.f32 f456, f455, 0fBF5DB3D7;
add.f32 f457, f389, f394;
add.f32 f458, f391, f396;
mul.f32 f459, f457, 0f3F000000;
sub.f32 f460, f109, f459;
sub.f32 f461, f391, f396;
mul.f32 f462, f461, 0fBF5DB3D7;
mul.f32 f463, f458, 0f3F000000;
sub.f32 f464, f145, f463;
sub.f32 f465, f389, f394;
mul.f32 f466, f465, 0fBF5DB3D7;
add.f32 %1, f96, f398;
add.f32 %0, f90, f397;
add.f32 %3, f144, f408;
add.f32 %2, f108, f407;
add.f32 %5, f156, f418;
add.f32 %4, f120, f417;
add.f32 %7, f167, f428;
add.f32 %6, f131, f427;
add.f32 %9, f168, f438;
add.f32 %8, f132, f437;
add.f32 %11, f157, f448;
add.f32 %10, f121, f447;
add.f32 %13, f145, f458;
add.f32 %12, f109, f457;
sub.f32 %15, f404, f406;
add.f32 %14, f402, f400;
sub.f32 %17, f414, f416;
add.f32 %16, f412, f410;
sub.f32 %19, f424, f426;
add.f32 %18, f422, f420;
sub.f32 %21, f434, f436;
add.f32 %20, f432, f430;
sub.f32 %23, f444, f446;
add.f32 %22, f442, f440;
sub.f32 %25, f454, f456;
add.f32 %24, f452, f450;
sub.f32 %27, f464, f466;
add.f32 %26, f462, f460;
add.f32 %29, f406, f404;
sub.f32 %28, f400, f402;
add.f32 %31, f416, f414;
sub.f32 %30, f410, f412;
add.f32 %33, f426, f424;
sub.f32 %32, f420, f422;
add.f32 %35, f436, f434;
sub.f32 %34, f430, f432;
add.f32 %37, f446, f444;
sub.f32 %36, f440, f442;
add.f32 %39, f456, f454;
sub.f32 %38, f450, f452;
add.f32 %41, f466, f464;
sub.f32 %40, f460, f462;
})"
     : "=f"(rmem[0].x), "=f"(rmem[0].y), "=f"(rmem[1].x), "=f"(rmem[1].y), "=f"(rmem[2].x), "=f"(rmem[2].y), "=f"(rmem[3].x), "=f"(rmem[3].y), "=f"(rmem[4].x), "=f"(rmem[4].y), "=f"(rmem[5].x), "=f"(rmem[5].y), "=f"(rmem[6].x), "=f"(rmem[6].y), "=f"(rmem[7].x), "=f"(rmem[7].y), "=f"(rmem[8].x), "=f"(rmem[8].y), "=f"(rmem[9].x), "=f"(rmem[9].y), "=f"(rmem[10].x), "=f"(rmem[10].y), "=f"(rmem[11].x), "=f"(rmem[11].y), "=f"(rmem[12].x), "=f"(rmem[12].y), "=f"(rmem[13].x), "=f"(rmem[13].y), "=f"(rmem[14].x), "=f"(rmem[14].y), "=f"(rmem[15].x), "=f"(rmem[15].y), "=f"(rmem[16].x), "=f"(rmem[16].y), "=f"(rmem[17].x), "=f"(rmem[17].y), "=f"(rmem[18].x), "=f"(rmem[18].y), "=f"(rmem[19].x), "=f"(rmem[19].y), "=f"(rmem[20].x), "=f"(rmem[20].y): "f"(rmem[0].x), "f"(rmem[0].y), "f"(rmem[1].x), "f"(rmem[1].y), "f"(rmem[1].y), "f"(rmem[2].x), "f"(rmem[2].y), "f"(rmem[2].y), "f"(rmem[3].x), "f"(rmem[3].y), "f"(rmem[4].x), "f"(rmem[4].y), "f"(rmem[4].y), "f"(rmem[5].x), "f"(rmem[5].y), "f"(rmem[5].y), "f"(rmem[6].x), "f"(rmem[6].y), "f"(rmem[7].x), "f"(rmem[7].y), "f"(rmem[7].y), "f"(rmem[8].x), "f"(rmem[8].y), "f"(rmem[8].y), "f"(rmem[9].x), "f"(rmem[9].y), "f"(rmem[10].x), "f"(rmem[10].y), "f"(rmem[10].y), "f"(rmem[11].x), "f"(rmem[11].y), "f"(rmem[11].y), "f"(rmem[12].x), "f"(rmem[12].y), "f"(rmem[13].x), "f"(rmem[13].y), "f"(rmem[13].y), "f"(rmem[14].x), "f"(rmem[14].y), "f"(rmem[14].y), "f"(rmem[15].x), "f"(rmem[15].y), "f"(rmem[16].x), "f"(rmem[16].y), "f"(rmem[16].y), "f"(rmem[17].x), "f"(rmem[17].y), "f"(rmem[17].y), "f"(rmem[18].x), "f"(rmem[18].y), "f"(rmem[19].x), "f"(rmem[19].y), "f"(rmem[19].y), "f"(rmem[20].x), "f"(rmem[20].y));
};


#endif
